﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using CapaNegocios;
using Excepciones;

namespace CapaUsuario
{
    public partial class FModifRep : FPlantilla
       
    {
        private CentroReparacion cRep;
        private Repuesto repu = null; //variable donde se cargará el repuesto a modificar
        public FModifRep()
        {
            InitializeComponent();
        }

        public FModifRep(CentroReparacion cR)
        {
            cRep = cR;
            InitializeComponent();
        }

        private void lblIdRep_Click(object sender, EventArgs e)
        {

        }

        private void lblEncabezado_Click(object sender, EventArgs e)
        {

        }

        private void label1_Click(object sender, EventArgs e)
        {

        }

        private void FModifRep_Load(object sender, EventArgs e)
        {

        }

        private void btnNuevaBusqueda_Click(object sender, EventArgs e)
        {
            tbIdRep.Clear();
            tbIdRep.Enabled = true;
            tbDescripRep.Clear();
            tbPrecioRep.Clear();
            tbStockRep.Clear();
            btnGuardar.Enabled = false;
            tbIdRep.Focus();
        }

        private void btnBuscar_Click(object sender, EventArgs e)
        {
            try
            {
                //busco los datos
                string id = tbIdRep.Text; //tengo el ID del Repuesto a buscar
                if (id.Length == 0) throw new Exception();                
                repu = cRep.getRepuesto(int.Parse(id)); //si existe dentro de la lista cargo el repuesto a modificar
                if (repu != null) //si existe dentro de la lista lo muestro
                {
                    tbIdRep.Enabled = false; //no se puede cambiar el id del repuesto
                    tbPrecioRep.Text = repu.PrecioUnitario.ToString();
                    tbStockRep.Text = repu.Stock.ToString();
                    tbDescripRep.Text = repu.Nombre;
                    btnGuardar.Enabled = true;
                }
                else
                {
                    MessageBox.Show("No existe el repuesto buscado");
                    tbIdRep.Clear();
                }
            }
            catch (Exception )
            {
                MessageBox.Show("Complete el id con un campo entero para buscar");
                tbIdRep.Focus();
            }
        }

        private void btnGuardar_Click(object sender, EventArgs e)
        {
            try
            {
                //excepciones de float e int --> nofuncionan
                //string pre = tbPrecioRep.Text.Trim(); //tengo el precio del Repuesto a buscar
                //if (pre.Length == 0) throw new FloatException();
                //string sto = tbStockRep.Text.Trim();
                //if (sto.Length == 0) throw new IntException();

                repu.Nombre = tbDescripRep.Text.Trim();
                repu.PrecioUnitario = float.Parse(tbPrecioRep.Text.Trim()); //convierto a int y cargo el precio
                repu.Stock = int.Parse(tbStockRep.Text.Trim()); //convierto a float y cargo el stock
                MessageBox.Show("Guardado exitosamente");
                tbIdRep.Clear();
                tbDescripRep.Clear();
                tbPrecioRep.Clear();
                tbStockRep.Clear();
                tbIdRep.Enabled = true;
                tbIdRep.Focus();
            }
            //catch (FloatException f)
            //{
            //    MessageBox.Show(f.Message);
            //    tbPrecioRep.Focus();
            //}
            //catch (IntException i)
            //{
            //    MessageBox.Show(i.Message);
            //    tbStockRep.Focus();
            //}
            catch (Exception)
            {
                MessageBox.Show("Complete los campos con valores correctos");
                //toolStripStatusLabel1.Text = "Error al procesar la consulta. Intente nuevamente.";
                tbIdRep.Enabled = true;
            }
        }
        }
    }